1. Field of the Invention
The present invention relates to providing a universal print assist in a printer environment. More particularly, the present invention relates to systems and methods for intercepting and performing an action on a print data stream as it is despooled by a spooler or print processor to a print provider without customizing any pre-existing components.
2. Background and Related Art
In current printing environments, techniques exist that utilize a process of intercepting and performing an action on a print data stream in a spooler and/or print processor. For example, a product currently available to consumers splits up and modifies an existing print stream between two or more printers for parallel printing. The product is implemented as a driver independent solution and can be used with a high number of existing printer drivers. Driver independence may be achieved by replacing the print processor associated with the printer driver with a customized print processor. Accordingly, all actions are performed by the customized print processor, including obtaining options from a user or intercepting, modifying and redirecting the print data stream.
In the Microsoft® Windows family of operating systems, a print job is typically spooled to a spooler, which then despools the print job to a print processor that is associated with the printer driver that created the print job. A default print processor performs a limited number of actions but varies across operating system platforms.
The above-referenced product, which splits up and modifies an existing print stream between two or more printers for parallel printing, is an enhanced version of the default print processor that conforms to and performs all actions of the default print processor, in addition to its own actions, to seamlessly integrate with existing printer drivers by changing the association (i.e., configuration) of the print processor with the printer driver from the default print processor to the print processor of the product. However, this technique is not universal in its application.
Techniques also exist that replace a spooler and/or print processor with an enhanced version of the spooler and/or print processor, to solve such problems as: 1) distributed despooling; 2) load balancing; 3) print job accounting; and 4) print job error recovery. While these techniques have a wide use, they are not universal in their application either. For example, the technique cannot be used if the spooler and/or print processor cannot be replaced with an enhanced version. Therefore, when a printer driver includes its own customized print processor that performs customized actions in conjunction with the printer driver, a replacement print processor would not know of the custom print processor. Thus, for example, while color ink jet drivers commonly defer rasterization (i.e., generation of the printer swath) to a custom print processor, a custom print processor that universally performs rasterization is not currently available since rasterization is specific to each printer model.
Therefore, while techniques currently exist that utilize a process of intercepting and performing an action on a print data stream in a spooler and/or print processor, challenges still exist, including that the techniques are not universal in their application. Accordingly, it would be an improvement in the art to augment or even replace current techniques with other techniques.